package com.nextel.project.devolucion.mvc;

import com.nextel.project.Configuracion;
import com.nextel.project.devolucion.ControlDevolucion;
import com.nextel.project.devolucion.bean.DevolucionDetalleBean;
import com.nextel.ui.ODateField;
import com.nextel.ui.OLabel;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OTextField;
import com.nextel.ui.OUILook;
import com.nextel.ui.custom.OTextFieldDecimal;
import javax.microedition.lcdui.Graphics;
import pe.com.nextel.idioma.IdiomaManager;
import pe.com.nextel.main.MVCAction;
import pe.com.nextel.util.Fecha;

/**
 *
 *  
 */
public class MVCDevolucionDatos extends MVCAction {

    private OLabel str, lblobservacion, lblCantidad, lblfecha;
    private OTextFieldDecimal txtCantidad;
    private OTextField txtObservaciones;
    private ODateField txtFecha;
    private OSoftKey cmdSeguir, cmdSalir;
    private boolean flagForm; // para que no presione dos veces al momento de buscar

    protected void createView() {

        cmdSeguir = new OSoftKey(Configuracion.BOTON_SEGUIR);
        cmdSalir = new OSoftKey(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANCELAR));//"Cancelar"

        formulario.setTitle(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_DEVOLUCION), OUILook.PLAIN_SMALL_TITLE);//"Devoluci\u00F3n"

        formulario.addSoftKey(cmdSeguir);
        formulario.addSoftKey(cmdSalir);
    }

    protected void createItems() {


        StringBuffer stf = new StringBuffer();
        DevolucionDetalleBean devolucionDetalle = ControlDevolucion.getInstance().currentDevolucionDetalle;

        if (devolucionDetalle != null) {
            stf.append(devolucionDetalle.getCodigoArticulo()).append('\n');
            stf.append(devolucionDetalle.getNombreArticulo());
        }

        //descripcion del articulo
        str = new OLabel(stf.toString(), OUILook.PLAIN_SMALL_TEXT, formulario.getWidth());
        formulario.add(str);

        //cantidad
        lblCantidad = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANT)+":  ", OUILook.PLAIN_SMALL_TEXT);//Cant
        txtCantidad = new OTextFieldDecimal(6, OUILook.PLAIN_SMALL_TEXT,(Configuracion.SimboloDecimal).charAt(0));

        if (devolucionDetalle.getCantidad() != null && !devolucionDetalle.getCantidad().equals("")) {
            txtCantidad.setText(String.valueOf(devolucionDetalle.getCantidad()));
        }
        formulario.add(lblCantidad);
        formulario.add(txtCantidad, 2, formulario.getComponentCount() - 1, Graphics.LEFT);

        lblfecha = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_FEC_VCMTO), OUILook.PLAIN_SMALL_TEXT);//"Fec.Vcmto(DD/MM/YYYY)"
        txtFecha = new ODateField(formulario, lblfecha, Graphics.TOP, OUILook.PLAIN_SMALL_TEXT);


        //observacion
        lblobservacion = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_OBS)+":", OUILook.PLAIN_SMALL_TEXT);//Obsv
        formulario.add(lblobservacion);
        txtObservaciones = new OTextField(25, OUILook.PLAIN_SMALL_TEXT, OTextField.ANY);
        txtObservaciones.allowSpaces(true);
        formulario.add(txtObservaciones);




        flagForm = true;
    }

    public void performAction(OSoftKey c) {
        if (flagForm) {
            flagForm = false;
            String fechaHora = "";
            if (c == cmdSeguir) {

                try {
                    if (txtCantidad.getText().equals("") || txtCantidad.getText().equals(".")) {
                        ControlDevolucion.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_CANTIDAD), this.showScreen());//"Ingrese la cantidad"
                        flagForm = true;
                        return;

                    }

                    if (txtFecha.getDay().equals("") || txtFecha.getMonth().equals("") || txtFecha.getYear().equals("")) {
                        ControlDevolucion.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_FECHA), this.showScreen());//"Ingrese la fecha"
                        flagForm = true;
                        return;
                    }
                    try {
                        new com.mot.iden.math.Float((txtCantidad.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));
                        ControlDevolucion.getInstance().currentDevolucionDetalle.setCantidad((txtCantidad.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));
                    } catch (Exception e) {
                        ControlDevolucion.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANTIDAD_INCORRECTA), this.showScreen());//"Cantidad Incorrecta"
                    }

                    fechaHora = txtFecha.getDay() + "/" + txtFecha.getMonth() + "/" + txtFecha.getYear();
                    
                    if (!Fecha.validarFecha(fechaHora)) {

                        ControlDevolucion.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_FECHA_INCORRECTA), this.showScreen());//"Fecha Incorrecta"
                        flagForm = true;
                        return;
                    }
                    //fechaHora = OtxtFecha.getDay() + "/" + OtxtFecha.getMonth() + "/" + OtxtFecha.getYear() + " 00:00";
                    ControlDevolucion.getInstance().currentDevolucionDetalle.setFecVencimiento(fechaHora);

                    //ControlDevolucion.getInstance().currentDevolucionDetalle.setFecVencimiento(fechaHora);
                    ControlDevolucion.getInstance().currentDevolucionDetalle.setObservaciones(txtObservaciones.getText());
//--
                    ControlDevolucion.getInstance().mvcDevolucionLista.setBusquedaMVC(ControlDevolucion.getInstance().getBusquedaMVC());
//--
                    ControlDevolucion.getInstance().setCurrent(ControlDevolucion.getInstance().mvcDevolucionLista);
                    destroy();
                    flagForm = true;

                } catch (Exception e) {
                    flagForm = true;
                    e.printStackTrace();
                    ControlDevolucion.getInstance().showMensaje(e + "", formulario);
                }

            } else if (c == cmdSalir) {
                ControlDevolucion.getInstance().setCurrent(ControlDevolucion.getInstance().mvcResumenDevolucion);
                destroy();
            }

        }
    }
}
